package com.tansun.easycare.rule.ruleproj.service;

import java.util.List;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageInfo;
import com.jeedev.msdp.sys.entity.SysRole;
import com.tansun.easycare.core.service.CrudService;
import com.tansun.easycare.rule.ruleproj.entity.RuleAuthority;
import com.tansun.easycare.rule.ruleproj.entity.RuleProjEntity;
import com.tansun.easycare.rule.ruleproj.entity.RuleProject;
import com.tansun.easycare.rule.ruleproj.model.RuleprojectVO;

/**
 * 规则项目管理Service
 *
 * @author lph
 * @version 2017-02-06
 */
public interface RuleProjectService extends CrudService<RuleProject> {
    /**
     * 保存规则项目信息
     */
    void saveOrUpdate(RuleProjEntity ruleProjEntity);

    /**
     * 获取当前用户具有权限的 项目
     *
     * @param projectCode 规则项目编码
     * @param currAuth    当前规则项目具有的权限
     */
    List<RuleProject> getUserRuleAuthProj(String projectCode, RuleAuthority currAuth);

    /**
     * 根据规则项目编号获取当前用户的规则模块操作权限
     *
     * @param projectCode 规则项目编号
     * @param usercode    用户账号（）
     */
    List<RuleAuthority> getProjAuthInfo(String projectCode, String usercode);
    
    /**
     * 根据规则项目编号获取当前用户的规则模块操作权限 HX 20191128
     *
     * @param projectCode 规则项目编号
     * @param rolecode    用户角色（）
     */
    List<RuleAuthority> getProjAuthInfoByRoleCode(String projectCode, List<SysRole> list);
    /**
     * 获取当前角色具有权限的 项目  HX 20191128
     *
     * @param projectCode 规则项目编码
     * @param currAuth    当前规则项目具有的权限
     */
	List<RuleProject> getRoleRuleAuthProj(String projectCode, RuleAuthority currAuth);
	/**
     * 根据项目信息查询对应的项目
     * @param page
     * @param ruleProject
     * @return
     */
	PageInfo<RuleprojectVO> findPageRef(Page<RuleprojectVO> page, RuleprojectVO ruleProjectVO);
	
	/**
	 * list projectCode 集合
	 * @param list
	 * @return
	 */
    List<RuleProject> getByCodeListForRef(List<String> list);

	String isExist(RuleProject rp);
	
}